School LSAT GPA
1 1 622 3.23
2 2 542 2.83
3 3 579 3.24
4 4 653 3.12
5 5 606 3.09
6 6 576 3.39
2024
Clase pasada vimos remuestreo basado en CV
Hoy veremos remuestreo basado en bootstrap
Una de las técnicas más utilizadas para medir la incertidumbre en modelos estadísticos complejos [Efron (1992).
Propiedades estadísticas de estimadores
Error de predicción
Combinación de modelos bootstrap aggregation
Podemos dividir las técnicas de bootstrap en: paramétrico y no paramétrico.
Supongamos que
Supongamos estamos interesados en algún parámetro de la distribución que puede escribirse como
Donde
Por ejemplo,
Podría ser también la correlación entre componentes de una distribución bivariada.
etc….
La estadística involucra la estimación de parámetros como
Suponemos que tenemos
Sea
Por ejemplo, si
Si no conocemos
Primer ejemplo para ilustrar bootstrap por Efron: Los datos son los puntos del las pruebas LSAT (para entrar a la escuela de derecho) y el GPA (escolaridad).
Suponemos ahora que nuestra población de interés es una distribución bivariada de LSAT y el promedio del GPA para estudiantes que entran en distintas universidades de derecho en un total de 82 en USA.
En este caso,
Están interesados en la correlación entre LSAR y GPA.
Supone que sacamos una muestra iid de
donde
Si nosotros pudieramos muestrear de la población repetidas veces podríamos usar la aproximación basada en simulaciones para obtener una aproximación de la distribución de
Aproximación basada en simulaciones en el ejemplo. Tenemos una población de 82 universidades de derecho.
Resultados de calcular
Esto es la aproximación basada en simulaciones donde utilizamos la secuencia de los
Esta aproximación funciona bien si nosotros podemos muestrear repetidamente de la población.
En la mayoría de los problemas reales tenemos UNA SOLA MUESTRA
La pregunta entonces es:
¿Cómo podemos usar una única muestra, que es lo que tenemos en general, para obtener información sobre la distribución de nuestro estimador
Entonces la idea general de bootstrap es usar la aproximación basada en simulaciones con
Cada una de las muestras son iid de tamaño n (como la muestra original) de
Usamos la secuencia de
La pregunta ahora es:
¿Cómo obtenemos
Si nosotros conocemos que nuestra población tiene alguna distribución paramétrica entonces podemos estimar los parámetros de la distribución con métodos estándar.
Por ejemplo si
Sea
Opción 1: Bootstrap paramétrico
Obtener una estimación puntual
Obtener
Calcular
Calcular
Aproximar
La aproximación parmétrica a la distribución en el muestreo del estadístico de interés incorpora los siguientes errores:
Error de especificación del modelo.
Error de simulación: número finito de replicas para representar la distribución en el muestreo
Error estadístico: la distribución en el muestreo de
Si el modelo está bien especificado, usar bootstrap paramétrico da resultados más precisos que no paramétrico.
Pero si está mal especificado los resultados rápidamente convergen a una distribución erronea.
Si nosotros no conocemos nada de
Muestrear de esta distribución es equivalente a sacar muestras aleatorias simples con reposición de la muestra observada
Por ejemplo suponé que nuestra muestra es:
3.4, 1.2, 8.5, 7.6 y 4.9
entonces la
Sea
Estamos interesados en obtener una estimación de
Bootstrap no paramétrico
Obtener
Calcular
Calcular
Aproximar
Todas las re-muestras se construyen a partir de los datos puede haber repetidos porque la muestra es con reposición.
El objetivo era estimar la correlación entre el promedio de LSAT y el promedio de GPA en una población de 82 universidades de derecho usando una muestra de 15 universidades.
También queremos aprender sobre la distribución de nuestro estimador usando la muestra de 15 universidades de derecho.
Vamos a usar los paquetes bootstrap (sólo para tener los datos) y boot
En el objeto law hay una muestra aleatorea de 15 universidades.
Si sorteamos una MAS con reposición de law de tamaño 15 tenemos una muestra bootstrap de la misma
Cargamos el paquete boot y escribimos una función que calcule el estadístico para cualquier muesta bootstrap, usamos i como índices de las obs remuestreadas
boot(data,statistic, R, sim ='ordinary",OTROS)
genera
data como matriz, vector o data.frame.
statistic una función que se aplica a los datos y retorna el estadístico de interés.
R número de réplicas
sim un character que indica el tipo de simulación, por defecto ordinary
Cuando sim="parametric el primer argumento del estadístico debe ser los datos y hay que definir ran.gen para generar las réplicas paramétricas. En otros casos debe tener al menos dos argumentos, para no paramétrico los datos y los índices que definen las muestras bootstrap.
La correlación muestral es 0.776 (con la muestra original de 15 observaciones)
Podemos examinar característicasde la distribución bootstrap de
¿Cómo se compara esto con la verdadera distribución de
Si fuese un problema real no lo sabríamos pero en este caso conocemos la verdadera población y también tenemos simulaciones previas para tener una buena aproximación de
Estimación basada en 100000
replicas simuladas
Estimaciones basadas en 5000 replicas bootstrap
Comparando con los resultados de la simulación vemos que la distribución basada en bootstrap parece estar corrida a la derecha respecto a la verdadera distribución.
[1] 0.7599979
[1] 0.7763745
El corrimiento a la derecha de la distribución no es sorprendente dado que la estimación muestral de la correlación sobrestima el verdadero valor.
Sin embargo el desvio estimado es bastante bueno (0.1348 comparado con 0.1302)
La estimación del sesgo con bootrap no paramétrico:
El sesgo de
La estimación corregida por sesgo:
En este caso nuestra estimación corregida por sesgo está más lejos que la no corregida
# Correlacion poblacional
cor(law82[,2], law82[,3])
#correlacion muestral
cor_b$t0
# Estimación corregida por sesgo con bootstrap
cor_b$t0-(mean(cor_b$t)- cor_b$t0)
Hay que notar que en las simulaciones el sesgo de
La media de 100000 réplicas de
Entonces podemos decir que la estimación del sesgo va en la dirección correcta aunque corregir por él dió una peor estimación.
La corrección por sesgo puede ser peligrosa en la práctica
El objetivo es obtener un IC aproximado para
Sea
Sea
Entonces
Este intervalo se llama IC percentil bootstrap para
BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
Based on 5000 bootstrap replicates
CALL :
boot.ci(boot.out = cor_b, conf = 0.95, type = "perc")
Intervals :
Level Percentile
95% ( 0.4507, 0.9635 )
Calculations and Intervals on Original Scale
2.5% 97.5%
0.4512198 0.9633646
En el caso del remuestro con datos independientes e idénticamente distribuidos (lo anterior), la construcción de las réplicas es relativamente sencilla.
Cuando los datos tienen dependencia el esquema de bootstrap no paramétrico no puede aplicarse directamente.
Algunos métodos que se pueden usar para series de tiempo: remuestreo basado en modelos, remuestreo basado en bloques, entre otros
Consiste en ajustar un modelo ARIMA a los datos, obtener los residuos del modelo ajustado y con ellos generar una nueva serie.
Se sortea una MAS con reposisción de los residuos y a partir de este se obtiene una réplica de la serie original. Esto se repite
La principal ventaja de este método es que se le puede aplicar a cualquier serie que sea modelable con un ARIMA.
Esta metodología arroja buenos resultados cuando el proceso generador de los datos es el modelo ARIMA utilizado para construir las réplicas.
Los problemas de este método surgen cuando el modelo ARIMA no es correcto o cuando las réplicas del modelo no son estacionarias.
En este método de remuestreo construye bloques de la serie original de tal forma que sean independientes, y luego el remuestreo es aplicado sobre los bloques.
Para la construcción de los bloques no es necesaria la estimación de un modelo, por lo que es un método no paramétrico.
Los bloques se pueden construir solapados o no solapados.
Una vez que los bloques son construídos se sortea una muestra simple con reposición de bloques de tamaño T/h (partimos la serie en h bloques), con la que se construye una réplica de la serie original concatenando los bloques sorteados.
Esto se repite B veces. Si la serie es estacionaria la dependencia entre observaciones disminuye a medida que la distancia entre ellas aumenta, la idea de estos métodos es que la dependencia de la serie esté contenida al interior de los bloques para tratarlos como intercambiables.
Esto motiva que el tamaño de los bloques sea suficientemente grande como para captar la dependencia de la serie.
Por otro lado como el objetivo es tener una gran cantidad de estimaciones distintas del parámetro de interés, es necesario contar con muchas réplicas distintas de la serie original. Pero la cantidad de réplicas a su vez está limitada por el número de bloques, esto apunta a que el tamaño de los bloques sea pequeño para poder tener muchas réplicas distintas. Los dos efectos antes mencionados deben ser tenidos en cuenta para la definición del tamaño del bloque.
Existen muchas variantes para la construcción de los bloques, entre ellas la combinación del método basado en réplicas de modelos y bootstrap en bloques.
Dicho método consiste en obtener los residuos de un modelo ARIMA y luego construir las réplicas de los residuos con bloques. Otra forma es que el tamaño de cada bloque sea aleatorio, esto permite obtener réplicas que son estacionarias cosa que no sucede con el esquema de bloques simples
Para que bootstrap funcione bien,
Cuando
Por la Ley fuerte de los grandes números
Qué tan grande debe ser n para que
Eso depende de